package dao

import (
	"adam2/internal/domain"
	"adam2/internal/model"
)

type OptimizeAccountLogDao interface {
	// 根据开始时间、结束时间查询记录，并按照date_和account_name列升序排列
	FindByBeginDateAndEndDateOrderByDateAndAccountName(beginDate string, endDate string) model.OptimizeAccountLogArray

	// 根据开始时间、结束时间、account_name查询记录，并按照date_和account_name列升序排列
	FindByBeginDateAndEndDateAndAccountNameOrderByDateAndAccountName(beginDate string, endDate string, accountName string) model.OptimizeAccountLogArray

	// 根据时间和account_name查询记录
	FindByDateAndAccountName(date string, accountName string) model.OptimizeAccountLog

	// 计算最大回撤
	CalculateMaximumDrawdown() domain.MaximumDrawdownArray

	// 根据日期删除记录
	DeleteByDate(date string)

	// 根据账号，查询当年的第一个交易日和前一年的第一个交易日
	FindCurrentYearFirstDateAndPreviousYearFirstDateByAccountName(accountName string) domain.CurrentYearFirstDateAndPreviousYearFirstDateArray
}
